﻿const { Sequelize, DataTypes, Model } = require('sequelize');
const sequelize = new Sequelize('BIG-SCREEN', 'BIG-SCREEN', '123456', {
  host: '192.168.2.115',
  port: 5236,
  dialect: 'dmdb', /* 选择 'mysql' | 'mariadb' | 'postgres' | 'mssql' 其一 */
  pool: {
    max: 5,
    min: 0,
    acquire: 30000,
    idle: 10000,
    poolAlias: 'd5454'
  }
})
// const sequelize = new Sequelize(
//   'dm://BIG-SCREEN:123456@192.168.2.115:5236?clobAsString=true',
//   {
//     pool: {
//       max: 5,
//       min: 0,
//       acquire: 30000,
//       idle: 10000,
//       poolAlias: 'd5454',
//     },
//   },
// );

class Godzilla extends Model {}

Godzilla.init(
  {
    // 在这里定义模型属性
    firstName: {
      type: DataTypes.STRING,
      allowNull: false
    },
    lastName: {
      type: DataTypes.STRING
      // allowNull 默认为 true
    }
  },
  {
    // 这是其他模型参数
    sequelize, // 我们需要传递连接实例
    modelName: 'Godzilla3', // 我们需要选择模型名称
    timestamps: false, // 不要时间戳
    freezeTableName: true // 禁止表名自动变复数
  }
)

;(async function () {
  await sequelize.authenticate();
  console.log('链接建立成功');

  // const res = await sequelize.query('SELECT * FROM Godzilla3');
  // console.log('data', res);

  // await Godzilla.create({ firstName: '金刚', lastName: '太平洋' });
  await Godzilla.findAll().then((res) => {
    console.log('data', res);
  });

  // await Godzilla.sync();
  // 关闭
  await sequelize.close();
})();
